home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1995 November / Macworld Nov ’95.toast / Audio⁄Video / Time Video / TimeVideo results next >
Encoding:
Text File  |  1995-05-22  |  8.0 KB  |  133 lines  |  [TEXT/ttxt]

  1. This file reports the timing and accuracy of all your video screens, as
  2. measured by TimeVideo, a component of the VideoToolbox. To quickly test a
  3. large number of computers, run TimeVideo from a floppy disk; all the results
  4. will accumulate in a single results file.
  5.  
  6. THE VIDEO TOOLBOX
  7. The VideoToolbox is a collection of two hundred C subroutines and several demo
  8. and utility programs that I and others have written to do visual psychophysics
  9. with Macintosh computers. It is fully compatible with 680x0 and Power PC Macs
  10. and Symantec THINK C 6 or 7 and Metrowerks CodeWarrior C 4.5 compilers. It's
  11. free and may not be sold without permission. It should be useful to anyone who
  12. wants to present accurately specified visual stimuli or use the Mac for
  13. psychometric experiments. The text file "Video synch" discusses all the ways
  14. of synchronizing programs to video displays and the many pitfalls to avoid.
  15. The TimeVideo application checks out the timing of all video devices in
  16. anticipation of their use in critical real-time applications, e.g. movies or
  17. lookup table animation. Low-level routines control video timing and lookup
  18. tables, display real-time movies, and implement the luminance-control
  19. algorithms suggested by Pelli and Zhang (1991). (D.G. Pelli and L. Zhang,
  20. 1991, "Accurate control of contrast on microcomputer displays." Vision
  21. Research, 31, 1337-1350. Reprints are available.) In particular,
  22. GetPixelsQuickly and SetPixelsQuickly peek and poke pixels in bitmaps and
  23. pixmaps, CopyBitsQuickly and CopyWindows faithfully copy between bit/pixmaps
  24. and the screen, WindowToEPS saves an image to disk, and SetEntriesQuickly and
  25. GDSetEntries load the screen's color lookup table, all without any of
  26. QuickDraw's color translations. High-level routines help analyze
  27. psychophysical experiments (e.g. graphing or maximum-likelihood fitting of
  28. psychometric data). Assign.c is a runtime C interpreter for C assignment
  29. statements, which is useful for controlling experiments and sharing
  30. calibration data. This collection has been continually updated since 1991.
  31. Many colleagues have indicated that they are using the software in their labs.
  32. Documentation is in the source files themselves. Many of the routines are
  33. Mac-specific, but some very useful routines, e.g. the luminance-control,
  34. statistics, maximum-likelihood fitting algorithms, and the runtime interpreter
  35. are written in Standard C and will work on any computer. Documentation is in
  36. the source files themselves. To get the latest version of the VideoToolbox
  37. just download “video-toolbox” electronically from a public archive:
  38. ftp://sumex-aim.stanford.edu/info-mac/dev/src/
  39. ftp://grind.isca.uiowa.edu/mac/infomac/dev/src/
  40. ftp://ftp.uu.net/archive/systems/mac/info-mac/dev/src/
  41. ftp://amug.org/pub/ftp1/info-mac/dev/src/
  42. ftp://wuarchive.wustl.edu/systems/mac/info-mac/dev/src/
  43. ftp://src.doc.ic.ac.uk/packages/mac/info-mac/dev/src/
  44. ftp://ftp.stolaf.edu/pub/macpsych/
  45. Log in as “anonymous”; any password will do. It's also on CompuServe in the
  46. MacDev forum's Library 4 “C and Pascal” as VIDEOT.SEA. If you're not
  47. electronically connected, send me your postal address and I'll mail you a
  48. disk.
  49. Denis Pelli, Professor of Neuroscience, Institute for Sensory Research, Syracuse University, Syracuse, NY 13244-5290, USA, denis_pelli@isr.syr.edu
  50.  
  51. TIME VIDEO
  52. For each video card, TimeVideo measures the video frame rate, frequency of VBL
  53. interrupts (ought to be one per frame), how long it takes to load the clut,
  54. and how much of the screen you can fill with a real-time one-image-per-frame
  55. movie shown by CopyBits() or CopyBitsQuickly(). It then performs a random
  56. write-then-read test of the Color Lookup Table (clut). This tests the clut
  57. memory hardware and the software used to write and read the clut. We test
  58. writing by GDSetEntries(), which passes the request on to the video driver,
  59. and, if possible, we also test writing by SetEntriesQuickly(), which accesses
  60. the hardware directly. (SetEntriesQuickly supports only a few video cards.) In
  61. either case, the clut is read by GDGetEntries(), which passes the request on
  62. to the video driver. The testing is thorough; many video devices fail at least
  63. part of the test. All the driver errors uncovered to date appear in the
  64. VideoToolbox “Video synch” text file, and have been reported to the video card
  65. manufacturer. Add your results by emailing this file to
  66. denis_pelli@isr.syr.edu
  67.  
  68. Errors reported by TimeVideo are usually due to bugs in the video driver
  69. software in the ROM of the video card or built-in video. If the bug will
  70. interfere with your experiments, then to use the card (or built-in video) you
  71. must either fix/replace the driver or bypass the driver, using
  72. SetEntriesQuickly to access the hardware directly (if SetEntriesQuickly
  73. supports that video card or built-in video). I suggest that you try replacing
  74. the driver, because this will keep your software hardware-independent. The
  75. VideoToolbox "Video synch" document explains how to fix the the Mac IIci video
  76. driver, patching or replacing the buggy version 0 .Display_Video_Apple_RBV1
  77. driver by copying the bug-free version 1 of the same driver from the Mac IIsi.
  78. It is very likely that an analogous approach could be used to fix/replace the
  79. buggy version 0, 1, and 2 .Display_Video_Apple_DAFB drivers in the Quadra 700,
  80. 750, and 900, by the bug-free version 3 or 5 of that driver in the Centris 650
  81. or the LC 475. And please report your bugs; the bug-free revised drivers are
  82. probably the result of our past bug reports.
  83.  
  84. GLOSSARY
  85. A video frame is a refresh of your video screen. To show a movie, you will
  86. want to reload the image once per frame; the table shows how big that image
  87. can be, as a fraction of the screen area, and still be reloaded once per
  88. frame. (Some video cards have multiple video “pages” that can be switched by
  89. calling GDSetMode(), though I've never tried it.) A “VBL” interrupt is
  90. produced by your video card driver, nominally once per frame, but some video
  91. drivers produce more, which is poor, but not serious. (The VBLInstall.c
  92. program will deal with it.) Suppressed interrupts during clut updates are bad.
  93. It means that the driver disables the VBL interrupt for too long while it’s
  94. loading the clut. This will throw off any interrupt-based attempt to count
  95. frames. The clut is the color lookup table of your video card. Lookup table
  96. animation, e.g. for temporal modulation of contrast, requires that you reload
  97. the clut once per frame, so it’s very important that this be fast enough. The
  98. first call to SetEntriesQuickly() for each device is slow--a cache is filled;
  99. the reported times are for subsequent calls. Each video card can be in “Color”
  100. or “Gray” mode, as set by the Control Panel:Monitors or the Macintosh Toolbox
  101. call SetDepth(). In “Gray” mode all colors are transformed to
  102. luminance-equivalent grays. This is done by the video driver, when loading the
  103. clut, but only if the pixelSize≤8. TimeVideo measures the driver's color
  104. transformation matrix, and reports it if it is other than the identity
  105. transformation:
  106. (ROut) (1 0 0) (RIn)
  107. (GOut)=(0 1 0)x(GIn)
  108. (BOut) (0 0 1) (BIn)
  109. The clut tests try loading the clut serially, one entry at a time, and all at
  110. once; some video drivers fail the serial test. For more explanation see the
  111. text file called “Video synch” on the VideoToolbox disk.
  112.  
  113. “GDSetEntries ... NAN ... frames”= the driver refuses to load the CLUT.
  114. “ok”= passed all tests.
  115. “!gray”= passed the color test, but is supposed to be in gray mode.
  116. “!color”= passed the gray test, but is supposed to be in color mode.
  117. “!serial”= passed when loaded all at once, but failed when loaded serially.
  118. “bad”= read did not equal write and the error is reported explicitly.
  119. We know that SetEntriesQuickly is “!serial” on the Quadra, alas.
  120.  
  121. This is a SimpleText document. You can use TeachText in a pinch, but it won't
  122. line up the columns properly.
  123.  
  124. TimeVideo version 3.6.3
  125. Monday, May 22, 1995.
  126. Compiled by Metrowerks CodeWarrior C for PowerPC, using 4-byte int and 8-byte double.
  127.   Power Macintosh with PPC601 and no floating point unit running System 7.5.1.
  128. 32-bit addressing. 32-bit QuickDraw 1.39.
  129. Tick rate is 60.2 Hz. System-based VBL rate is 60.1 Hz.
  130.  
  131.   Power Macintosh “Built-In DRAM Video” (.Display_Video_Apple_Sonora version
  132. 6) slot 0
  133.